﻿using System;
using System.Collections.Generic;
using System.ServiceModel;

namespace BlueWind.Mediator.ServiceContracts.Interfaces
{
    [ServiceContract(CallbackContract = typeof(IColleague))]
    public interface IMediator
    {
        HandSakeBase HandSake
        {
            [OperationContract]
            get;
            [OperationContract]
            set;
        }

        Dictionary<String, IColleague> MemberDictionary
        {
            [OperationContract]
            get;
            [OperationContract]
            set;
        }

        [OperationContract]
        void Register(String userName, IColleague colleague);

        [OperationContract]
        void Send(String from, String room, BwMessage message, MessageType messageType);

        [OperationContract]
        void UnRegister(IColleague iColleague, string userName);
    }
}